package com.bh.extend.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bh.common.annotation.Dict;
import com.bh.common.annotation.Excel;
import com.bh.common.core.domain.DictLabelVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 条码与商品对应对象 jc_order_barcode
 *
 * @author slx
 * @date 2023-03-27
 */
@EqualsAndHashCode(callSuper = true)
@TableName("jc_order_barcode")
@Data
public class JcOrderBarcode extends DictLabelVo {
    

    /**
     * 条码号
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 条码号
     */
    private String productCode;

    /**
     * LED订单ID
     */
    @Dict(dictTable = "jc_order", dictLabel = "code", dictValue = "id")
    @Excel(name = "订单ID")
    private Long orderId;

    /**
     * LED订单ID
     */
    @Dict(dictTable = "jc_led", dictLabel = "code", dictValue = "id")
    @Excel(name = "LED订单ID")
    private Long ledOrderId;

    /**
     * LED商品ID
     */
    @Dict(dictTable = "jc_order_product", dictLabel = "name", dictValue = "id", dictAlias = "productIdDtLabel")
    @Excel(name = "商品ID")
    private Long productId;
    @TableField(exist = false)
    private String productIdDtLabel;

    /**
     * LED商品ID
     */
    @Excel(name = "LED商品ID")
    private Long ledProductId;

    /**
     * 商品序号
     */
    private String orderBy;

    /**
     * 运单ID
     */
    @Dict(dictTable = "jc_shipment", dictLabel = "code", dictValue = "id")
    @Excel(name = "运单ID")
    private Long shipmentId;


    @TableField(exist = false)
    private String orderIdCode;
    @TableField(exist = false)
    private String ledOrderIdCode;
    @TableField(exist = false)
    private String shipmentIdCode;

    /**
     * 是否打包
     */
    @Excel(name = "是否打包")
    private String packStatus;

    /**
     * 打包时间
     */
    private Date packTime;


    /** 卸货时间 */
    @ApiModelProperty("卸货时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date unloadTime;

    /** 异常扫码人 */
    @ApiModelProperty("异常扫码人")
    private String abnormalScanUser;

    /** 异常扫码时间 */
    @ApiModelProperty("异常扫码时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date abnormalScanTime;

    /** 派送单ID */
    @ApiModelProperty("派送单ID")
    private Long sendId;

    /** 准备送货人 */
    @Dict(dictTable = "sys_user", dictLabel = "nick_name", dictValue = "user_id")
    @ApiModelProperty("准备送货人")
    private Long preSendUser;

    /** 准备送货时间 */
    @ApiModelProperty("准备送货时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date preSendTime;

}
